import requests
from common.token_data import TokenTool
from common.inquire_role_id import inquire_role_id


class ApiRole(object):

    # 添加角色
    @classmethod
    def add_role(cls, token_data, role_data):
        resp = requests.post("https://heimahr.itheima.net/api/sys/role", headers=token_data, json=role_data)
        return resp
        # {
        #     "success": true,
        #     "code": 40001,
        #     "data": {
        #         "id": 11,
        #         "name": "测试角色",
        #         "description": "获取添加角色url",
        #         "state": 1
        #     },
        #     "message": "新增角色成功"
        # }

    # 修改角色
    @classmethod
    def put_role(cls, role_id, token_data, role_put_data):
        resp = requests.put(f"https://heimahr.itheima.net/api/sys/role/{role_id}", headers=token_data,
                            json=role_put_data)
        return resp

    # 查询角色
    @classmethod
    def get_role(cls, token_data):
        resp = requests.get("https://heimahr.itheima.net/api/sys/role?page=3&pagesize=5", headers=token_data)
        return resp

    # 删除角色
    @classmethod
    def delete_role(cls, role_id, token_data):
        resp = requests.delete(f"https://heimahr.itheima.net/api/sys/role{role_id}", headers=token_data)
        return resp


if __name__ == '__main__':
    # state为角色的状态：1代表启用、0代表关闭。
    role_data = {"name": "测试角色", "description": "获取添加角色url", "state": 1}
    add_role_resp = ApiRole.add_role(TokenTool.token_data(), role_data)
    print("添加角色的结果为：", add_role_resp.json())

    # get_role_resp = ApiRole.get_role(TokenTool.token_data())
    # print("查询的结果为", get_role_resp.json())

    role_id = inquire_role_id(f"{role_data.get("name")}")
    print(role_id)
    role_put_data = {"name": "测试角色_1", "state": 1, "description": "业务完整性", "id": role_id}

    put_role_resp = ApiRole.put_role(role_id, TokenTool.token_data(), role_put_data)
    print("修改后的角色：", put_role_resp.json())

    delete_role_id = add_role_resp.json().get("data").get("id")
    delete_role_resp = ApiRole.delete_role(delete_role_id, TokenTool.token_data())
    print("删除角色的结果为：", delete_role_resp.json())
